#include "../rg_gui.h"

// This comes with no warranty, implied or otherwise

// This data structure was designed to support Proportional fonts
// on Arduinos. It can however handle any ttf font that has been converted
// using the conversion program. These could be fixed width or proportional
// fonts. Individual characters do not have to be multiples of 8 bits wide.
// Any width is fine and does not need to be fixed.

// The data bits are packed to minimize data requirements, but the tradeoff
// is that a header is required per character.

// Font         : Bitstream Vera Bold
// Point Size   : 12
// Memory usage : 1120 bytes
// # characters : 95

const rg_font_t font_VeraBold12 = {
    .name = "VeraBold",
    .type = 1,
    .width = 7,
    .height = 12,
    .chars = 95,
    .data = {
        // Individual Character Format:
        // ----------------------------
        // Character Code
        // Adjusted Y Offset
        // Width
        // Height
        // xOffset
        // xDelta (the distance to move the cursor. Effective width of the character.)
        // Data[n]

        // NOTE: You can remove any of these characters if they are not needed in
        // your application. The first character number in each Glyph indicates
        // the ASCII character code. Therefore, these do not have to be sequential.
        // Just remove all the content for a particular character to save space.

// ' '
0x20,0x09,0x00,0x00,0x00,0x04,

// '!'
0x21,0x01,0x02,0x08,0x02,0x05,
0xFF,0xCF,
// '"'
0x22,0x01,0x03,0x03,0x01,0x06,
0xB6,0x80,
// '#'
0x23,0x01,0x08,0x08,0x01,0x09,
0x12,0x16,0x16,0x7F,0x24,0xFE,0x68,0x48,
// '$'
0x24,0x01,0x07,0x0A,0x00,0x08,
0x10,0xFF,0x47,0x8F,0xC3,0xC5,0xFE,0x10,0x20,
// '%'
0x25,0x01,0x0A,0x08,0x01,0x0B,
0x61,0x24,0x89,0x61,0x90,0x09,0x86,0x91,0x24,0x86,
// '&'
0x26,0x01,0x08,0x08,0x01,0x0A,
0x3C,0x60,0x60,0x73,0xDB,0xCE,0xEE,0x7B,
// '''
0x27,0x01,0x01,0x03,0x01,0x03,
0xE0,
// '('
0x28,0x00,0x03,0x0A,0x01,0x05,
0x6F,0x6D,0xB6,0x6C,
// ')'
0x29,0x00,0x03,0x0A,0x01,0x05,
0xD9,0xB6,0xDB,0xD8,
// '*'
0x2A,0x01,0x05,0x05,0x00,0x06,
0x25,0x5D,0x52,0x00,
// '+'
0x2B,0x02,0x07,0x07,0x01,0x09,
0x10,0x20,0x47,0xF1,0x02,0x04,0x00,
// ','
0x2C,0x07,0x03,0x04,0x00,0x04,
0x6D,0x40,
// '-'
0x2D,0x05,0x03,0x02,0x01,0x05,
0xFC,
// '.'
0x2E,0x07,0x02,0x02,0x01,0x04,
0xF0,
// '/'
0x2F,0x01,0x04,0x09,0x00,0x04,
0x13,0x22,0x64,0x4C,0x80,
// '0'
0x30,0x01,0x06,0x08,0x01,0x08,
0x79,0x2C,0xF3,0xCF,0x34,0x9E,
// '1'
0x31,0x01,0x06,0x08,0x01,0x08,
0xF0,0xC3,0x0C,0x30,0xC3,0x3F,
// '2'
0x32,0x01,0x06,0x08,0x01,0x08,
0xF8,0x30,0xC6,0x31,0x8C,0x3F,
// '3'
0x33,0x01,0x06,0x08,0x01,0x08,
0x7A,0x30,0xDE,0x0C,0x38,0xDE,
// '4'
0x34,0x01,0x07,0x08,0x01,0x08,
0x1C,0x79,0xB2,0x68,0xDF,0xC3,0x06,
// '5'
0x35,0x01,0x06,0x08,0x01,0x08,
0xFB,0x0C,0x3E,0x0C,0x30,0xFE,
// '6'
0x36,0x01,0x06,0x08,0x01,0x08,
0x39,0x8C,0x3E,0xCF,0x34,0xDE,
// '7'
0x37,0x01,0x06,0x08,0x01,0x08,
0xFC,0x31,0x86,0x30,0xC6,0x18,
// '8'
0x38,0x01,0x06,0x08,0x01,0x08,
0x7B,0x3C,0xDE,0xCF,0x3C,0xDE,
// '9'
0x39,0x01,0x06,0x08,0x01,0x08,
0x7B,0x2C,0xF3,0x7C,0x31,0x9C,
// ':'
0x3A,0x03,0x02,0x06,0x01,0x04,
0xF0,0xF0,
// ';'
0x3B,0x03,0x03,0x08,0x00,0x04,
0x6C,0x06,0xD4,
// '<'
0x3C,0x02,0x07,0x06,0x01,0x09,
0x02,0x3B,0x87,0x01,0xC0,0x40,
// '='
0x3D,0x04,0x07,0x03,0x01,0x09,
0xFE,0x03,0xF8,
// '>'
0x3E,0x02,0x07,0x06,0x01,0x09,
0x80,0xE0,0x38,0x77,0x10,0x00,
// '?'
0x3F,0x01,0x05,0x08,0x01,0x06,
0xF0,0xCE,0xE6,0x01,0x8C,
// '@'
0x40,0x01,0x0A,0x0A,0x01,0x0B,
0x1E,0x18,0x65,0xFA,0xCD,0xA1,0x68,0x5B,0x35,0x7E,0x61,0x07,0x80,
// 'A'
0x41,0x01,0x08,0x08,0x00,0x08,
0x18,0x3C,0x3C,0x24,0x66,0x7E,0x66,0xC3,
// 'B'
0x42,0x01,0x07,0x08,0x01,0x09,
0xFD,0x8F,0x1F,0xEC,0x78,0xF1,0xFE,
// 'C'
0x43,0x01,0x07,0x08,0x01,0x09,
0x3E,0xC7,0x06,0x0C,0x18,0x18,0x9F,
// 'D'
0x44,0x01,0x07,0x08,0x01,0x09,
0xF9,0x9B,0x1E,0x3C,0x78,0xF3,0x7C,
// 'E'
0x45,0x01,0x06,0x08,0x01,0x08,
0xFF,0x0C,0x3F,0xC3,0x0C,0x3F,
// 'F'
0x46,0x01,0x06,0x08,0x01,0x08,
0xFF,0x0C,0x3F,0xC3,0x0C,0x30,
// 'G'
0x47,0x01,0x07,0x08,0x01,0x09,
0x3E,0xC7,0x06,0x0C,0xF8,0xD9,0x9F,
// 'H'
0x48,0x01,0x07,0x08,0x01,0x09,
0xC7,0x8F,0x1F,0xFC,0x78,0xF1,0xE3,
// 'I'
0x49,0x01,0x02,0x08,0x01,0x04,
0xFF,0xFF,
// 'J'
0x4A,0x01,0x04,0x0A,0xFF,0x04,
0x33,0x33,0x33,0x33,0x3E,
// 'K'
0x4B,0x01,0x08,0x08,0x01,0x09,
0xC6,0xCC,0xD8,0xF0,0xF0,0xD8,0xCC,0xC6,
// 'L'
0x4C,0x01,0x06,0x08,0x01,0x07,
0xC3,0x0C,0x30,0xC3,0x0C,0x3F,
// 'M'
0x4D,0x01,0x09,0x08,0x01,0x0B,
0xE3,0xF1,0xFD,0xFA,0xBD,0xDE,0x4F,0x07,0x83,
// 'N'
0x4E,0x01,0x07,0x08,0x01,0x09,
0xE7,0xCF,0x9E,0xBD,0x79,0xF3,0xE7,
// 'O'
0x4F,0x01,0x08,0x08,0x01,0x0A,
0x3C,0x66,0xC3,0xC3,0xC3,0xC3,0x66,0x3C,
// 'P'
0x50,0x01,0x07,0x08,0x01,0x08,
0xFD,0x8F,0x1E,0x3F,0xD8,0x30,0x60,
// 'Q'
0x51,0x01,0x08,0x0A,0x01,0x0A,
0x3C,0x66,0xC3,0xC3,0xC3,0xC3,0x66,0x3C,0x0C,0x06,
// 'R'
0x52,0x01,0x07,0x08,0x01,0x08,
0xF9,0x9B,0x36,0x6F,0x9B,0xB3,0x63,
// 'S'
0x53,0x01,0x06,0x08,0x01,0x08,
0x7B,0x2C,0x3C,0x7C,0x38,0xFE,
// 'T'
0x54,0x01,0x08,0x08,0x00,0x08,
0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
// 'U'
0x55,0x01,0x07,0x08,0x01,0x09,
0xC7,0x8F,0x1E,0x3C,0x78,0xF1,0xBE,
// 'V'
0x56,0x01,0x08,0x08,0x00,0x08,
0xC3,0x66,0x66,0x66,0x24,0x3C,0x3C,0x18,
// 'W'
0x57,0x01,0x0B,0x08,0x01,0x0D,
0xC4,0x79,0xCD,0xBB,0x35,0x67,0xBC,0x77,0x0C,0x61,0x8C,
// 'X'
0x58,0x01,0x08,0x08,0x00,0x08,
0xC3,0x66,0x66,0x3C,0x3C,0x66,0x66,0xC3,
// 'Y'
0x59,0x01,0x08,0x08,0x00,0x08,
0xC3,0x66,0x64,0x3C,0x18,0x18,0x18,0x18,
// 'Z'
0x5A,0x01,0x07,0x08,0x01,0x08,
0xFE,0x0C,0x30,0xC3,0x0C,0x30,0x7F,
// '['
0x5B,0x00,0x04,0x0A,0x01,0x05,
0xFC,0xCC,0xCC,0xCC,0xCF,
// '\'
0x5C,0x01,0x04,0x09,0x00,0x04,
0x8C,0x44,0x62,0x23,0x10,
// ']'
0x5D,0x00,0x04,0x0A,0x00,0x05,
0xF3,0x33,0x33,0x33,0x3F,
// '^'
0x5E,0x01,0x07,0x03,0x01,0x09,
0x38,0xFB,0x18,
// '_'
0x5F,0x0B,0x06,0x01,0x00,0x06,
0xFC,
// '`'
0x60,0x00,0x03,0x02,0x01,0x06,
0xCC,
// 'a'
0x61,0x03,0x06,0x06,0x01,0x08,
0x78,0x37,0xF3,0xCD,0xF0,
// 'b'
0x62,0x00,0x06,0x09,0x01,0x08,
0xC3,0x0C,0x3E,0xCF,0x3C,0xF3,0xF8,
// 'c'
0x63,0x03,0x05,0x06,0x01,0x07,
0x7F,0x31,0x8E,0x3C,
// 'd'
0x64,0x00,0x06,0x09,0x01,0x08,
0x0C,0x30,0xDF,0xCF,0x3C,0xF3,0x7C,
// 'e'
0x65,0x03,0x06,0x06,0x01,0x08,
0x7B,0x3F,0xF0,0xE1,0xF0,
// 'f'
0x66,0x00,0x05,0x09,0x00,0x05,
0x3B,0x19,0xF6,0x31,0x8C,0x60,
// 'g'
0x67,0x03,0x06,0x08,0x01,0x08,
0x7F,0x3C,0xF3,0xCD,0xF0,0xDE,
// 'h'
0x68,0x00,0x06,0x09,0x01,0x08,
0xC3,0x0C,0x3E,0xCF,0x3C,0xF3,0xCC,
// 'i'
0x69,0x00,0x02,0x09,0x01,0x04,
0xF3,0xFF,0xC0,
// 'j'
0x6A,0x00,0x03,0x0B,0x00,0x04,
0x6C,0x36,0xDB,0x6F,0x00,
// 'k'
0x6B,0x00,0x07,0x09,0x01,0x07,
0xC1,0x83,0x06,0x6D,0x9E,0x3C,0x6C,0xCC,
// 'l'
0x6C,0x00,0x02,0x09,0x01,0x04,
0xFF,0xFF,0xC0,
// 'm'
0x6D,0x03,0x0A,0x06,0x01,0x0B,
0xFF,0xB3,0x3C,0xCF,0x33,0xCC,0xF3,0x30,
// 'n'
0x6E,0x03,0x06,0x06,0x01,0x08,
0xFB,0x3C,0xF3,0xCF,0x30,
// 'o'
0x6F,0x03,0x06,0x06,0x01,0x08,
0x7B,0x3C,0xF3,0xCD,0xE0,
// 'p'
0x70,0x03,0x06,0x08,0x01,0x08,
0xFB,0x3C,0xF3,0xCF,0xEC,0x30,
// 'q'
0x71,0x03,0x06,0x08,0x01,0x08,
0x7F,0x3C,0xF3,0xCD,0xF0,0xC3,
// 'r'
0x72,0x03,0x04,0x06,0x01,0x05,
0xFC,0xCC,0xCC,
// 's'
0x73,0x03,0x05,0x06,0x01,0x07,
0x7E,0x3C,0xF1,0xF8,
// 't'
0x74,0x01,0x05,0x08,0x00,0x05,
0x63,0x3E,0xC6,0x31,0x87,
// 'u'
0x75,0x03,0x06,0x06,0x01,0x08,
0xCF,0x3C,0xF3,0xCD,0xF0,
// 'v'
0x76,0x03,0x09,0x06,0xFF,0x07,
0x63,0x31,0x8D,0x86,0xC1,0xC0,0xE0,
// 'w'
0x77,0x03,0x09,0x06,0x01,0x0B,
0xC9,0xEE,0xF7,0x6E,0xE6,0x33,0x18,
// 'x'
0x78,0x03,0x07,0x06,0x00,0x07,
0xC6,0xD8,0xE1,0xC6,0xD8,0xC0,
// 'y'
0x79,0x03,0x07,0x08,0x00,0x07,
0xC6,0xD9,0xB1,0xC3,0x86,0x0C,0x30,
// 'z'
0x7A,0x03,0x05,0x06,0x01,0x07,
0xF8,0xCC,0xCC,0x7C,
// '{'
0x7B,0x00,0x06,0x0A,0x01,0x08,
0x1C,0xC3,0x0C,0xE0,0xC3,0x0C,0x30,0x70,
// '|'
0x7C,0x01,0x01,0x0B,0x01,0x04,
0xFF,0xE0,
// '}'
0x7D,0x00,0x06,0x0A,0x01,0x08,
0xE0,0xC3,0x0C,0x1C,0xC3,0x0C,0x33,0x80,
// '~'
0x7E,0x04,0x07,0x03,0x01,0x09,
0x00,0xE6,0x70,

      // Terminator
        0xFF,
    },
};